---
id: ms01
title: 1. 部门管理
sidebar_label: 1. 部门管理
---

import useBaseUrl from "@docusaurus/useBaseUrl";

`vben` 中的部门是一个广义的部门，可维护类型（集团、企业、机构、部门等），用于应对企业的实际情况。比如说上市集团包含有多个企业，每个企业下有机构，机构下才是部门。
当 `vben` 用作非企业系统时，可以将部门当做一个用户分类来使用，比如将部门维护成省份，用于标记用户所属省份。

## 1.1 主要界面

部门查询页有两种布局方式，可通过 `切换按钮` 切换

### 1.1.1 经典左右布局查询页

<img src={useBaseUrl("img/modules/sys/dept/01.png")}/>

左侧部门树支持模糊查询，拖拽移动，右键点击（新增子部门，修改部门，删除部门），展开全部，折叠全部，刷新等功能。

右侧分页部门列表，会根据左侧当前点击部门做父部门筛选条件，如果左侧没有点击的部门，则没有父部门条件限制（可通过点击左侧 `···` 下拉按钮组中的根部门去除父部门条件限制）。

### 1.1.2 树形表格布局查询页

<img src={useBaseUrl("img/modules/sys/dept/02.png")}/>

树形表格采用虚拟化表格，支持超大数据渲染

### 1.1.3 弹框编辑页

经典左右布局查询页匹配弹框编辑

<img src={useBaseUrl("img/modules/sys/dept/03.png")}/>

### 1.1.4 抽屉编辑页

树形表格布局查询页匹配抽屉编辑

<img src={useBaseUrl("img/modules/sys/dept/04.png")}/>

当修改部门时，为避免部门关系上下级无限循环引用，上级部门会被限制选择当前部门及当前部门的子孙部门

## 1.2 表结构

表名：sys_org_dept

| 字段名   | 类型       | 长度   |注释              |说明                     |
| ------- | --------- | ----- |-----------------|---------------------------|
| id      | varchar   | 36    |主键ID          |   |
| ornum   | int       |     |排序号           |   |
| label   | varchar   | 36    |标签            | 一般用于标记特定的部门  |
| notes   | varchar   | 255   |备注            |   |
| type    | int       | 11    |类型            | 1：部门，2：机构，4：企业，8：集团  |
| pid     | varchar   | 36    |上级部门ID       |   |
| tier    | varchar   | 512  |层级字符串       | 顶级部门到本部门的所有部门ID，以_划分，如：d1000_d1100_d1110 |
| name    | varchar   | 64   |部门名称         |   |
| crtim   | datetime  |      |创建时间         |第一次插入后，就不再更新|
| uptim   | datetime  |      |更新时间         |第一次插入时同crtim   |
| cruid   | varchar   | 36    |创建人ID           |第一次插入后，就不再更新|
| upuid   | varchar   | 36    |修改人ID           |第一次插入时同cruid   |
| avtag   | bit       | 1     |可用标记          | 0：不可用，1：可用  |
| ex1   | varchar       | 32     |扩展字段1          |   |
| ex2   | varchar       | 32     |扩展字段2          |   |
| ex3   | varchar       | 32     |扩展字段3          |   |
| ex4   | varchar       | 32     |扩展字段4          |   |

[//]: # (<table>)

[//]: # (    <thead>)

[//]: # (    <tr>)

[//]: # (        <th width="80" align="center">字段名</th>)

[//]: # (        <th width="100">类型</th>)

[//]: # (        <th width="100" align="center">长度</th>)

[//]: # (        <th width="200" align="center">注释</th>)

[//]: # (        <th width="*">说明</th>)

[//]: # (    </tr>)

[//]: # (    </thead>)

[//]: # (    <tbody>)

[//]: # (    <tr>)

[//]: # (        <td>id</td>)

[//]: # (        <td>varchar</td>)

[//]: # (        <td>36</td>)

[//]: # (        <td>主键ID</td>)

[//]: # (        <td></td>)

[//]: # (    </tr>)

[//]: # (    <tr>)

[//]: # (        <td>ornum</td>)

[//]: # (        <td>int</td>)

[//]: # (        <td>11</td>)

[//]: # (        <td>排序号</td>)

[//]: # (        <td></td>)

[//]: # (    </tr>)

[//]: # (    <tr>)

[//]: # (        <td>label</td>)

[//]: # (        <td>varchar</td>)

[//]: # (        <td>36</td>)

[//]: # (        <td>标签</td>)

[//]: # (        <td>一般用于标记特定的部门</td>)

[//]: # (    </tr>)

[//]: # (    </tbody>)

[//]: # (</table>)

`tier` 字段可快速定位祖先部门，部门下的用户与岗位也包含有tier字段。当部门tier字段变化后，部门下的用户与岗位tier字段也会随之变化。

## 1.3 特殊说明

- 部门一般有了业务数据不会再硬删除，可通过 `可用标记` 字段来做软删除。组织架构中的其他元素也有这样的特性。
